package com.founder.devwork.persistence.gateway.gitlab.dto;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.time.Instant;
import lombok.Data;

/**
 * CommitDTO 用于表示 Git 提交信息。
 * 提供 ID、消息、作者姓名、作者邮箱、作者日期、提交者姓名、提交者邮箱、提交日期、统计信息、父 ID 列表、Web URL 和仓库 ID 等字段。
 */
@Data
public class CommitDTO {

    private String id;
    private String message;

    @JsonProperty("author_name")
    private String authorName;

    @JsonProperty("author_email")
    private String authorEmail;

    @JsonProperty("authored_date")
    private Instant authoredDate;

    @JsonProperty("committer_name")
    private String committerName;

    @JsonProperty("committer_email")
    private String committerEmail;

    @JsonProperty("committed_date")
    private Instant committedDate;

    private StatsDTO stats;

    @JsonProperty("parent_ids")
    private String[] parentIds;

    @JsonIgnore
    private String webUrl;

    @JsonIgnore
    private Long repoId;
}
